using System;
using System.Collections.Generic;
using System.Text;

namespace Zsa.Emulation.PPU
{

    /// <summary>
    /// Video memory constants.
    /// </summary>
    public static class VideoMemoryConstants
    {
        #region Pattern Tables
        /// <summary>
        /// The total pattern table size.
        /// </summary>
        public const int TotalPatternTableByteSize = PatternTableByteSize * 2;

        /// <summary>
        /// The size of the pattern tables
        /// </summary>
        public const int PatternTableByteSize = 0x1000;

        /// <summary>
        /// The start of the first pattern table.
        /// </summary>
        public const int PatternTableOneStart = 0;

        /// <summary>
        /// The start of the first pattern table
        /// </summary>
        public const int PatternTableTwoStart = 0x1000;
        #endregion Pattern Tables

        #region Name Tables
        /// <summary>
        /// The start of the first name table
        /// </summary>
        public const int NameTableOneStart = 0x2000;

        /// <summary>
        /// The start of the first name table
        /// </summary>
        public const int NameTableTwoStart = 0x2400;

        /// <summary>
        /// The start of the third name table.
        /// </summary>
        public const int NameTableThreeStart = 0x2800;

        /// <summary>
        /// The start of the fourth name table.
        /// </summary>
        public const int NameTableFourStart = 0x2C00;
        #endregion Name Tables

        /// <summary>
        /// The end of the second name table.
        /// </summary>
        public const int NameTableOneEnd = 0x23BF;

        public const int NameTableSize = 960;

        public const int AttibuteTableSize = 64;

        public const int NameAttributeTableSize = 0x400;

        public const int ImagePaletteStart = 0x3F00;

        public const int SpritePaletteStart = 0x3F10;


    }
}
